const form = reactive({
  id: undefined,
  name: '',
  icon: '',
  minExp: 0,  // 最小经验值
  maxExp: 0,  // 最大经验值
  desc: '',
  rights: [],
  sort: 1
});
function onShowDesc(row: any) {
  console.log('查看权益详情:', row);
  if (row.desc && row.desc.trim()) {
    currentDesc.value = row.desc;
  } else {
    // 如果没有权益详情，则根据权益列表生成详情
    let descContent = `${row.name}等级权益详情：`;
    if (row.rights && row.rights.length > 0) {
      const rightsList = row.rights.map((right: any) => {
        return `${right.type}：${right.value || ''} ${right.desc ? `(${right.desc})` : ''}`;
      });
      descContent += rightsList.join('，');
    } else {
      descContent += '暂无设置权益';
    }
    currentDesc.value = descContent;
  }
  showDescDialog.value = true;
}

// 添加C类等级经验值区间验证函数
function validateExpRanges() {
  // 创建临时列表，包含当前表单数据
  let tempList = [...levelList.value];
  if (form.id) {
    // 编辑模式，替换原有数据
    const idx = tempList.findIndex(l => l.id === form.id);
    if (idx > -1) {
      tempList[idx] = JSON.parse(JSON.stringify(form));
    }
  } else {
    // 新增模式，添加新数据
    tempList.push(JSON.parse(JSON.stringify(form)));
  }

  // 按exp排序
  tempList.sort((a, b) => a.exp - b.exp);

  let hasGap = false;

  // 检查重叠和中断
  for (let i = 0; i < tempList.length; i++) {
    const current = tempList[i];
    
    // 检查与下一个区间是否重叠或中断
    if (i < tempList.length - 1) {
      const next = tempList[i + 1];
      
      // 检查重叠 - 不允许保存
      if (next.exp <= current.exp) {
        ElMessage.error(`等级${current.name}和等级${next.name}的经验值设置存在重叠，请调整`);
        return false;
      }
      
      // 检查中断 - 只提示，允许保存
      if (next.exp > current.exp + 1) {
        ElMessage.warning(`等级${current.name}和等级${next.name}的经验值区间存在中断（${current.exp} - ${next.exp}）`);
        hasGap = true;
      }
    }
  }

  // 存在中断但没有重叠，允许保存
  return true;
}

// Tab切换处理
function onSave() {
  formRef.value.validate((valid: boolean) => {
    if (!valid) return;
    
    // 添加经验值区间验证逻辑
    const isValid = validateExpRanges();
    if (!isValid) return;

    if (form.id) {
      // 编辑
      const idx = levelList.value.findIndex(l => l.id === form.id);
      if (idx > -1) levelList.value[idx] = JSON.parse(JSON.stringify(form));
      ElMessage.success('编辑成功');
    } else {
      // 新增
      form.id = Date.now();
      levelList.value.push(JSON.parse(JSON.stringify(form)));
      ElMessage.success('新增成功');
    }
    showForm.value = false;
  });
}